package editorsvg.css;

import editorsvg.editor.documento.ElementoSVG;

/**
 * Condición de identificador.
 * Para seguir la cadena debe verifica la condición de tener un id determinado.
 * @author Jorge Berjano
 */
public class CondicionId extends Condicion {
    private String id;
    private Condicion siguienteCondicion;
        
    public CondicionId(String id, Condicion siguienteCondicion) {
        this.id = id;
        this.siguienteCondicion = siguienteCondicion;
    }

    @Override
    public String toString() {
        return "id=" + id;
    }

    @Override
    public boolean evaluar(ElementoSVG elemento, Regla regla) {
        String idElemento = elemento.id().getTexto();
        if (!id.equals(idElemento)) {
            return false;
        }
        
        if (siguienteCondicion == null) {
            if (regla != null) {
                regla.aplicarAsignaciones(elemento);
            }
            return true;
        }
        return siguienteCondicion.evaluar(elemento, regla);
    }            

    @Override
    public int getEspecificidad() {
        return 10000 + (siguienteCondicion != null ? siguienteCondicion.getEspecificidad() : 0);
    }
}
